//package com.example.demo01;
//
//import javax.validation.constraints.Max;
//import java.io.Serializable;
//import java.util.Objects;
//
///**
// * description: MyArrayListTest <br>
// * date: 2021/4/2 16:06 <br>
// *
// * @author: ZhangYixin <br>
// * version: 1.0 <br>
// */
//public class MyArrayListTest implements Serializable {
//
//    // 第一次扩容容量
//    private static final int DEFAULT_CAPACITY = 10;
//
//    // 用于初始化空的list
//    private static final Object[] EMPATY_ELEMENT_DATA = {};
//
//    // 实际存储的元素
//    transient Object[] elementData;
//
//    // 用于返回list集合大小的size
//    public int size = 0;
//
//    public MyArrayListTest() {
//        this.elementData = EMPATY_ELEMENT_DATA;
//    }
//
//    public MyArrayListTest(int initialCapacity){
//        if (initialCapacity > 0){
//            this.elementData = new Object[initialCapacity];
//        }else if (initialCapacity == 0){
//            this.elementData = EMPATY_ELEMENT_DATA;
//        }else {
//            throw new IllegalArgumentException("参数异常");
//        }
//    }
//
//    public boolean add (Object e){
//        // 判断容量
//        ensureCapacityInternal(size+1);
//        // 使用下标赋值，尾部插入
//        elementData[size++] = e;
//    }
//
//    /**
//     * 计算容量+确保容量
//     * @param minCapacity
//     */
//    private void ensureCapacityInternal(int minCapacity){
//        // 如果是初次扩容，则使用默认的容量
//        if (elementData == EMPATY_ELEMENT_DATA){
//            minCapacity = Math.max(minCapacity,DEFAULT_CAPACITY);
//        }
//
//        // 判断是否需要扩容
//        if (minCapacity - elementData.length > 0){
//            int oldCapacity = elementData.length;
//
//            int newCapacity = oldCapacity + (oldCapacity>>1);
//
//            // 如果新容量 < 最小容量
//        }
//    }
//}
